op {
  graph_op_name: "Copy"
  visibility: HIDDEN
  in_arg {
    name: "input"
    description: <<END
Input tensor.
END
  }
  attr {
    name: "tensor_name"
    description: <<END
The name of the input tensor.
END
  }
  attr {
    name: "debug_ops_spec"
    description: <<END
A list of debug op spec (op, url, gated_grpc) for attached debug
ops. Each element of the list has the format
<debug_op>;<grpc_url>;<gated_grpc>, wherein gated_grpc is boolean represented
as 0/1. E.g., "DebugIdentity;grpc://foo:3333;1",
"DebugIdentity;file:///tmp/tfdbg_1;0".
END
  }
  summary: "Copy a tensor from CPU-to-CPU or GPU-to-GPU."
  description: <<END
Performs CPU-to-CPU or GPU-to-GPU deep-copying of tensor, depending on the
device on which the tensor is allocated.
N.B.: If the all downstream attached debug ops are disabled given the current
gRPC gating status, the output will simply forward the input tensor without
deep-copying. See the documentation of Debug* ops for more details.

Unlike the CopyHost Op, this op does not have HostMemory constraint on its
input or output.
END
}
